import pandas as pd

# 显示完整数据
pd.set_option('display.max_rows', 500)
pd.set_option('display.max_columns', 100)
pd.set_option('display.width', 1000)

pd.set_option('display.unicode.east_asian.width', True)
df = pd.read_excel('resources/msb课程记录.xls')
print(df)
print('==========================')

# 查看缺失值
print(df.info())
print('==========================')

# 判断缺失值
print(df.isnull())  # 不为NaN时为False
print('==========================')

print(df.notnull())  # 不为NaN时为True
print('==========================')

# 对缺失值的处理 -- 删除
df = pd.read_excel('resources/msb课程记录.xls')
print(df['课程总数量'].notnull())
print(df[df['课程总数量'].notnull()])  # 将'课程总数量'缺失的行删除

print('==========================')
df = df.dropna()  # 将有缺失值的行删除
print(df)
print('==========================')

# 对缺失值的处理 -- 填充
df = pd.read_excel('resources/msb课程记录.xls')
df['课程总数量'] = df['课程总数量'].fillna(0)  # 如果'课程总数量'缺失，则填充为0
print(df)
print('==========================')

# 对重复值处理 -- 删除
print(df.duplicated())  # 判断重复值是否存在 -- 各列完全一样
df = df.drop_duplicates()  # 去除所有重复数据 -- 各个数据完全一样
print(df)

df = df.drop_duplicates(['买家实际支付金额'], keep='last')  # 删除'买家实际支付金额'的重复数据 -- 保留重复行中的最后一行
print(df)

# 直接删除，保留副本
df1 = df.drop_duplicates(['课程总数量'], inplace=False)
print(df1) # 新数据是删除之后的结果
print(df) # 原本的数据不变
